<!DOCTYPE HTML>
<script src="../../../../resources/js-test.js"></script>
<style>

#container {
    position: absolute;
    right: 0;
    top: 0;
    padding: 50px;
}

#frame {
  width: 75px;
  height: 75px;
  border: 1px solid black;
}

</style>

<div id=container>
    <iframe id=frame></iframe>
</div>

<script>
description("Verify that in the absence of any reason to adjust into an iframe, taps are handle in the frame matching the center point of the tap.  bug 401504");

var sawClick = false;

function nodeName(node) {
    var name = node.nodeName;
    if (node.id)
      name += '#' + node.id;
    return name;
}

document.addEventListener('click', function(e) {
    sawClick = true;
    debug("Received click on " + nodeName(e.target));
});

function doTap(name, x, y, expectFrame) {
    // Sanity check
    var e = document.elementFromPoint(x, y);
    var onFrame = e == frame;
    if (onFrame != expectFrame)
        testFailed("Point-based hit-test returned unexpected element: " + nodeName(e));

    eventSender.gestureTapDown(x, y);
    eventSender.gestureShowPress(x, y);
    debug("Sending GestureTap " + name);
    sawClick = false;
    eventSender.gestureTap(x, y);
    shouldBe('sawClick', onFrame ? 'false' : 'true');
    debug("");
}

var rect = frame.getBoundingClientRect();

var midx = rect.left + rect.width / 2;
var midy = rect.top + rect.height / 2;
doTap("on top of iframe", midx, midy, true);
doTap("above iframe", midx, rect.top - 1, false);
doTap("to the left of iframe", rect.left - 1, midy, false);
doTap("to the right of iframe", rect.right + 1, midy, false);
doTap("below iframe", midx, rect.bottom + 1, false);
</script>
